Quality assurance and testing of an operating system is directed to a successful reproduction of a failure occurred during the execution of the operating system and appropriate reporting of the failure. The reproduction of the failure often involves quite sophisticated setup and teardown of the testing environment, in addition to the actual testing. In particular, various applications may need to be tested in the same run, often with various and test-specific configurations. Each such test may require a different testing environment. Changing the testing environment may result in a failure as well. This setup failure should be treated differently from a failure occurred during the actual test of the operating system. Additionally, such a setup of the testing environment needs to be properly cleaned up after the test itself to ensure that the setup does not affect the run of the rest of the test batch. Consequently, when a testing tool reports a failure, a quality assurance engineer needs to figure out whether the failure has resulted from an error in the test setup or cleanup or from an error in the tested software itself.